Parameter adjusting device

ABSTRACT

A parameter adjusting device optimizes parameters using a genetic algorithm by using a plurality of processing devices. The plurality of processing devices is respectively configured to individually and simultaneously execute the genetic algorithm and to, a predetermined period prior each local search, be such that each processing device, in accordance with the genetic algorithm processing, based on predetermined numbers, send individuals of a genetic population to others of the plurality of processing devices and further configured to have a migration arrangement for receiving the predetermined numbers.

CROSS REFERENCE TO RELATED APPLICATION

This is a continuation application of patent application Ser. No.10/584,350 filed on Jun. 23, 2006.

BACKGROUND OF THE INVENTION AND RELATED ART STATEMENT

The present invention relates to a parameter adjusting device,especially, a parameter adjusting device that can adjust a great numberof parameters of a physical model and so on by a genetic algorithm(hereinafter referred to as a GA) using multiple processing units(processors, CPU) within a short time.

Conventionally, a parameter adjusting device that automatically performsparameter fitting (adjusting) processing of a physical model includingmultiple parameters using the GA from an experimental result and so onis proposed. A reference for the GA is, for example, the followingJapanese Non-patent Publication 1 (David E. Goldberg, 1989, “GeneticAlgorithms in Search, Optimization, and Machine Learning”, published byADDISON-WESLEY PUBLISHING COMPANY, INC). In addition, the GA in thepresent invention represents an evolutionarily computational technique,and includes an evolution strategy (ES) technique. A reference for theevolution strategy, for example, includes the following JapaneseNon-patent Publication 2 (H. P. Schwefel, 1995, “Evolution and OptimumSeeking”, published by John Wiley & Sons).

Furthermore, in the following Japanese Patent Publication 1 (JapanesePatent Publication No. 2003-108972), a parameter adjusting device thatautomatically performs a parameter adjusting processing of a physicalmodel including the multiple parameters using the GA is proposed.

In the above-mentioned conventional parameter adjusting method, themethod for improving accuracy by performing parameter adjustment(search) using the GA at first, and a local search method in the finalstage of the search, was used. However, since the search using the GAlowers searching speed in the final stage, when the GA tries to raisethe accuracy, the processing time becomes longer. On the other hand,when the GA is switched to the local search method in the early stage,an optimal solution might not be obtained.

Also, GA processing is suitable for relatively parallel processing;however, the local search method is not suitable for high speed throughparallel processing. In addition, depending on an applied model, thelocal search method has a possibility of reaching the optimal solutionquicker than the GA does. However, even in the above-mentioned model,the processing time could not be shortened by the conventional method.

Further objects and advantages of the invention will be apparent fromthe following description of the invention.

SUMMARY OF THE INVENTION

The present invention is made in order to solve the above-mentionedproblems, and the main feature of the parameter adjusting device of theinvention is that, in the parameter adjusting device optimizingparameters using a genetic algorithm with multiple processing means(CPU), a processing assignment means wherein a part of the multipleprocessing means is assigned to search processing by a local searchmethod such as Powell method is provided.

Also, when performances of multiple processors are not equal, thepresent invention assigns processing of the local search to alow-performance processor. Also, the present invention collects aninterim result of the search from the processor being assigned to theprocessing by the genetic algorithm in the multiple processors, and usesit for the search processing by the local search method.

In addition, the present invention includes an individual decision meanswhich determines the group of individuals being processed by the geneticalgorithm through the processing means being assigned to the processingby the GA in the multiple processing means according to the respectiveprocessing capability of each processor's means. Furthermore, themultiple processors include a determination means determining whether tosatisfy respective search processing termination conditions. When atermination is determined in an optional processor, the presentinvention terminates the entire processing of the device.

According to the above-mentioned features, a parameter adjusting deviceof the present invention has an effect to be able to determine a groupof the most appropriate parameters within a short time by: effectivelyutilizing a resource inside a system; parallelizing fitting processing;and making the fitting processing more efficient.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a hardware structure of an embodimentof the parameter adjusting device of the present invention.

FIG. 2 is a schematic time chart showing a parameter adjustingprocessing using the GA of the present invention.

FIG. 3 is a flowchart showing contents of processing in anadministrative CPU1.

FIG. 4 is a flowchart showing contents of CPU processing for the GA.

FIG. 5 is a flowchart showing the contents of CPU processing for a localmethod.

FIG. 6 is a flowchart showing the contents of GAn processing of S16,S36.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A parameter adjusting device of the present invention can be used inorder to run a simulation of a transistor with an optional shape usingthe model generated by optimizing the model parameters which iscalculated with the model function that expresses the transistor'selectric property using the electric property data measured from severaltransistors with a different shape experimentally. However, the presentinvention is not limited to the example described hereinabove, and canbe applied to optional processings using the GA. Hereinafter,embodiments of the present invention will be explained.

Embodiment 1

FIG. 1 is a block diagram showing the hardware structure of anembodiment of the parameter adjusting device of the present invention.Well-known personal computers of CPU1(1)˜CPUn(13) with n units areconnected by a LAN14. A well-known display 16 and keyboard 15 for datainput and output are connected to the CPU1(10); however, the display 16and keyboard 15 may be connected to the other CPUs. A well-known datainput and output device may be installed in each CPU. The parameteradjusting device of the present invention can be realized by creatingand installing a program described hereinafter in each CPU.

Incidentally, the above-mentioned structure is an example, and when anumber of CPUs are installed on a server, or when a number of personalcomputers are connected via the Internet, the present invention can beapplied to optional computer systems which can substantively performparallel processing by a number of processing units (CPU). Also, evenwhen one CPU such as a hyper-threading function and so on cansubstantively perform a number of processing in parallel, the presentinvention can be applied.

FIG. 2 is a schematic time chart showing a parameter adjusting (fitting)processing using the GA of the present invention. The CPU1 functions asan administrative CPU, and performs: data input and output; a processingassignment to the other CPUs; and the management of the entire parameteradjusting processing other than GA processing (local-method processing).The CPU2˜CPUn−1 are CPUs being assigned to the GA processing. The CPUnis the CPU being assigned to local-method search processing.Incidentally, the reference alphabet n represents an integer 2 or more.

The CPU1 collects processing results (superior individual information)from the other CPUs with respect to each predetermined cycle(generational change processing of the predetermined number of theGA=GAn processing), and determines termination conditions. When thetermination conditions are satisfied, the CPU1 terminates the entireprocessing, and outputs a result. Every time the CPU1 for the managementgives an instruction, the CPU for the GA processing performs the GAnprocessing. Migration processing is performed during the GAn processing,wherein the CPUs for the other GA and an individual are exchanged overthe predetermined cycle. Also, over an independent cycle from theabove-described cycle, the superior individual information istransmitted to the CPUn for the local method (or via the CPU for themanagement) at that point.

When the CPUn for the local method receives individual (parameter)information via the CPU for the management or the CPU for the GA, theCPUn for the local method optimizes (searches) the parameters by aheretofore known local search method, and transmits a search result tothe CPU for the management.

FIG. 3 is a flowchart showing contents of the processing in anadministrative CPU1. In a S10, the other CPUs available to the GA orlocal method are searched. In a S11, it is determined whether or notprocessing capabilities of the available CPUs are well-known, and when adetermined result is negative, the S11 is transferred to S12. In theS12, the processing capabilities determine the processing capabilitiesof unforeknown CPUs. As a capability, a method such that the capabilityis measured by measuring the processing time through a simple benchmarktesting program wherein clock frequency information of the CPU isretrieved, can be adopted.

In S13, the CPU for the local method is selected. As a selectioncondition, for example, the CPU with the lowest processing capability isselected. The CPU1 for the management may be selected as the CPU for thelocal method; however, in this example, another CPUn shall be selected.Incidentally, the processing of the S10˜13 may be performed beforehand.The CPU available to the management CPU1, the processing capability, theprocessing assignment, and so on may be registered beforehand.

In S14, input data necessary to the GA or the local-method processing isdistributed to each CPU. In S15, an individual (chromosome) for the GAprocessing in the CPU for the management is generated. For example, inthe case of the semiconductor manufacturing line, N chromosomes(individuals), wherein the whole physical model functions of atransistor or a value of a part of the parameters are the genes, aregenerated, and are considered as an individual population. An individualgeneration determines the value of the genes in the chromosomes.Incidentally, in a physical model of a transistor such as the heretoforeknown BSIM, a range of recommended parameter initial values is set, sothat in each parameter, the initial value is determined randomly withinthe range of the recommended parameter initial value, and becomes thevalue of the genes.

The number of the individuals N is basically determined based on thenumber of the parameters being required to be adjusted. In theembodiment, for example, it may be that the number of the individualN=the number of the parameter x a constant (for example, 5˜15).Incidentally, the larger the number of the individual N, the better theaccuracy: however, the longer the processing time. On the other hand,when the multiple CPUs with different processing capabilities performthe GA processing of the same individual number N, a quick CPU has towait until a slow CPU completes the processing. As a result, theprocessing time of the multiple CPUs being assigned to the GA may beroughly the same by increasing the N for the CPUs with larger processingcapability.

In an S16, the after-mentioned GAn processing (or the local-methodprocessing) is performed. In an S17, processing result data of theentire CPUs including one's own data are collected. In an S18, whetheror not the termination condition is satisfied is determined. Thetermination condition is that, for example, a condition of any of thefollowing (1)˜(3) is satisfied. (1) The evaluated value of anyindividuals has reached more than the target value set beforehand. (2)The increase rate of the evaluated value has become below thepredetermined value. (3) The iteration of calculation has surpassed thepredetermined value.

In an S19, a termination is indicated relative to all the CPUs, and inan S20, a result is outputted at, for example, a display, printer, file,and so on. Incidentally, when the information of the above-mentionedtermination condition (1) is transmitted through the other CPUs duringthe processing of the S16, the processing of the S16 may be pausedimmediately and transferred to the S19.

FIG. 4 is a flowchart showing the contents of the CPU processing for theGA. In an S30, it is held until the data is received through themanagement CPU. In an S31, if the received data indicates termination,the processing is terminated. In an S32, whether or not the receiveddata is the distributed data in the S14 is determined, and when thedetermination result is affirmative, the received data is transferred toan S33. In the S33, the individual (chromosome) for the GA processing inits CPU is generated. This processing is the same processing with theS15. In an S34, the generated individual is registered as the parentpopulation and transferred to an S36.

In an S35, whether or not the received data is a continued instructionis determined, and when the determination result is affirmative, thereceived data is transferred to the S36. In the S36, the GAn processingwhich is the generational change processing with the predeterminednumber of the GA described hereinafter is performed. In an S37, thesuperior individual information with a predetermined individual numberwhich is the result of the GA processing, is transferred to themanagement CPU, and returned to the S30.

FIG. 5 is a flowchart showing the contents of the CPU processing for thelocal method. In an S50, it is held until the data is received throughthe management CPU. In an S51, if the received data indicatestermination, the processing is terminated. In an S52, whether or not thereceived data is the distributed data in the S14 is determined, and whenthe determination result is affirmative, the received data istransferred to an S55.

In an S53, whether or not the data of an interim result beingtransmitted from the CPU for the GA is the superior data is determined,and when the determination result is affirmative, the received data istransferred to an S54. In the S54, the individual for performing thesearch processing is selected from the superior individual data sortedby the evaluated values, collected from each CPU in order of evaluatedvalue, and so on. Incidentally, if the CPU for the local method canperform the local-method search processing more than once during the GAnprocessing of the other CPUs, the number of the individual beingselected within a performable range may be multiple, and in the case ofa multiple number, the search processing with the local method isprocessed one-by-one in order.

In the S55, the parameter adjustment, i.e., the superior parametersearch is performed by, for example, the heretofore known Powell methodas mentioned in, for example, “NUMERICAL RECIPES in C, Gijutsu-HyohronCo., Ltd., 1993” and so on, or the other heretofore known local searchmethod. Since the processing has a light processing load compared to theGA processing, even if the CPU has a low processing capability, theprocessing can be performed within a short time compared to the GAprocessing. In an S56, the superior individual information with thepredetermined individual number which is the result of the processing istransferred to the management CPU, and returned to the S50.

FIG. 6 is a flowchart showing the contents of GAn processing which arethe generational change processing of the predetermined number of the GAof the S16, S36. In S60˜S62, generation update processing for ageneration in the heretofore known genetic algorithm processing isperformed. Incidentally, details are written in the above-mentionedJapanese Patent Publication. First, in the S60, the individual isselected randomly from the parent population by the predeterminednumber, and generates a child individual by crossover processing.Crossover processing is a processing wherein: a copy of a selectedparent individual is respectively generated by an arbitrary number; anda part of the gene is exchanged between the copy individuals; or a newgene is generated from each gene, so that a child individual with anarbitrary number is generated.

In the S61, the evaluated value of the child individual being generatedat the S60 is calculated. The evaluated value is the value showing howclose to an ideal value the gene in the chromosomes is as the parameter.In the case of being applied to a semiconductor manufacturing line,square error between: estimated value of the property being calculatedby the transistor model function which expresses the electric propertywherein the genes in the chromosome is the model parameters; andmeasured value of the property being obtained by an experimental test ofthe transistor is calculated. The lower the square error value becomes,the better the estimation is.

In the S62, only the number of individuals which are retrieved from theparent individuals being selected in the S60 and the generated childindividuals in order of highest value is returned to the parentpopulation, and the rest is abandoned. Due to this processing, alow-valued chromosome is eliminated. Incidentally, in addition to this,the following method in which: a part of the parent individuals isreturned to the population as it is without being selected as the objectof the natural selection and the number of “the rest of the parentindividual” is returned in the order of the highest value from the restof the parent individuals and the child individuals; or after the wholeindividuals are returned to the parent population, only original numberof the parent population is left and the others are eliminated may beused.

Generally, in the GA, a mutation method is applied in addition tocrossover method. However, for example, in the above-mentioned JapanesePatent Publication, since the genes of the child individuals aregenerated using random numbers in the process of the crossover, theproperty of the mutation is also included. Therefore, in the case ofusing the above-mentioned crossover method, the mutation is not requiredto be performed additionally. Incidentally, in the case of the GAhandling real number value, the operation wherein normal random numbersbeing generated according to a normal distribution are added to eachgene of the chromosomes, is proposed as a mutation processing, and theabove-mentioned mutation processing may be added.

In an S63, whether or not accuracy, i.e., an error of the experimentalresult of the physical model using the parameters of the individualsbeing equal to the most highly-evaluated value meets the target value isdetermined, and when the determination result is affirmative, thereceived data is transferred to an S72. In the S64, whether or not theGA processing (generational change) is performed by a determinediteration beforehand (6 times in FIG. 2), is determined, and when thedetermination result is affirmative, the received data is transferred tothe S72.

In an S65, whether or not an individual extraction cycle for the localmethod (3 times in FIG. 2) is presented is determined, and when thedetermination result is affirmative, the received data is transferred toan S66. In the S66, the superior individuals are transferred to the CPUfor the local method only by the predetermined number. In an S67,whether or not a migration cycle (twice in FIG. 2) is presented isdetermined, and when the determination result is affirmative, thereceived data is transferred to an S68. However, when the determinationresult is negative, the received data is returned to the S60.

A parallel GA system of the present invention allows each childpopulation to become independent with respect to each processor andevolve. Consequently, the GA process in each processor lowers thediversity of a solution compared to the GA process of a parentpopulation, so that the fitting capability goes down. Consequently, theprocessing referred to as migration is added. Migration is the processof replacing the chromosomes among child populations in the respectiveCPUs. By this processing, the diversity of the solution is maintained,and the fitting capability which is the same or more than the fittingcapability during the single population processing is maintained.

In the S68, the superior individuals are extracted only by thepredetermined number. In an S69, the data of the extracted individual istransferred to the predetermined CPU. The forwarding CPU may be fixedbeforehand, or a table or an arithmetic expression which determines towhich CPU will be transferred for what time may be created anddistributed beforehand. As an example, the data may be transferred in aring such that, for example, the CPU1 data is transferred to the CPU2,the CPU2 data is transferred to the CPU3 . . . the CPUn−1 data istransferred to the CPU1. In an S70, the data migrated from the otherCPUs is received. In an S71, the data migration in an S70 is added tothe parent population of the individual, and returned to the S60.

When the termination is determined, the superior individual informationwith a predetermined number which is the result of the processing in theS72, is transferred and reported to the management CPU, and the GAnprocessing is completed.

By the above-mentioned structure and processing, high-accuracy parameteradjustment can be performed within a short time. By adopting therelevant parameters to the physical model, a high-accuracy circuitsimulation can be performed without a test, so that efficiency inmanufacturing a semiconductor device improves.

Embodiment 1 is explained in the above; however, the followingtransformational example is used as the parameter adjusting device ofthe present invention. In the embodiment, the example where: theindividual for the local-method processing periodically transmits thesuperior individual information is disclosed; however, in the case thatthe individual information satisfying the predetermined accuracy in theCPUs for each GA appears, the individual information may be transmittedto the CPU for the local method as needed.

In the embodiment, the example wherein each CPU is assigned to any ofthe GA processing or the local-method processing is disclosed; however,in the case that, for example, there is only one CPU with a highprocessing capability, both of the GA processing and the local-methodprocessing can be assigned to the CPU with the highest processingcapability, and only the GA processing can be assigned to the otherCPUs.

In the embodiment, the example wherein the superior interim result ofthe GA processing is searched by the local method is disclosed; however,in the case wherein there are multiple peaks of the evaluated values ina parameter space, when the superior interim result of the GA processingcan be classified into the multiple groups being able to be fittedwithin the predetermined range in the parameter space, therepresentative individuals of each group may be searched by the localmethod.

The parameter adjusting device of the present invention can be appliedto an optional parameter adjusting device optimizing a parameter usingthe genetic algorithm with multiple processing means.

The disclosure of Japanese Patent Application No. 2003-433656, filed onDec. 26, 2003, is incorporated in the application.

While the invention has been explained with reference to the specificembodiments of the invention, the explanation is illustrative and theinvention is limited only by the appended claims.

1. A parameter adjusting device for optimizing parameters using agenetic algorithm by using a plurality of processing devices, whereinsaid plurality of processing devices is respectively configured toindividually and simultaneously execute the genetic algorithm and to, apredetermined period prior each local search, be such that eachprocessing device, in accordance with the genetic algorithm processing,based on predetermined numbers, send individuals of a genetic populationto others of said plurality of processing devices and further configuredto have a migration arrangement for receiving the predetermined numbers.2. The parameter adjusting device as set forth in claim 1, wherein theeach processing device comprises a CPU of a computer or server includinga plurality of CPUs in which said genetic algorithm is installed.
 3. Theparameter adjusting device as set forth in claim 1, wherein themigration arrangement transfers individual information to be migrated,along a ring shape route.
 4. The parameter adjusting device according toclaim 1, wherein a selected one of the plurality of processing devicesis configured to determine if all of the searches conducted by theplurality of processing devices have been completed and to terminate thelocal search process in response to completion of all local searches.